/**
 * @file key_control.c
 * @brief 按键控制相关功能实现
 * @author 废话文学创始人
 * @version 1.0
 * @date 2024-07-14
 */

#include <key_control.h>

/**
 * @brief K1按键动作回调函数
 * @note 切换LED1状态
 */
void K1_Action()
{
    LED1_TOGGLE();
}

/**
 * @brief K2按键动作回调函数
 * @note 切换LED1状态
 */
void K2_Action()
{
    LED1_TOGGLE();
}

/**
 * @brief K3按键动作回调函数
 * @note 切换LED1状态
 */
void K3_Action()
{
    LED1_TOGGLE();
}

/**
 * @brief K4按键动作回调函数
 * @note 切换LED1状态
 */
void K4_Action()
{
    LED1_TOGGLE();
}

/**
 * @brief 按键初始化
 * @note 注册各按键及其回调函数
 */
void Key_Init(void)
{
    Key_Register(K1_GPIO_Port, K1_Pin, K1_MASK, K1_Action);
    Key_Register(K2_GPIO_Port, K2_Pin, K2_MASK, K2_Action);
    Key_Register(K3_GPIO_Port, K3_Pin, K3_MASK, K3_Action);
    Key_Register(K4_GPIO_Port, K4_Pin, K4_MASK, K4_Action);
}

/**
 * @brief 按键动作处理
 * @note 根据按键标志位调用对应回调函数
 */
void Key_Action(void)
{
    Key_Flag_Action(Key_Flag_Receive());
}